LabVIEW动态调用VI及调用路径问题 |
您所在的位置:网站首页 › labview 子面板 允许用户打开程序框图 › LabVIEW动态调用VI及调用路径问题 |
在LabVIEW程序设计中,调用VI一般分为静态调用和动态调用,静态调用是指被调用VI在VI调用程序的程序框图上直接放置子VI,它与VI调用程序同时加载,而且常驻内存 ,直至调用它的VI运行结束。动态调用VI是指在调用程序运行时动态加载VI,执行完后从内存卸载,自动释放内存,动态调用VI又分为通过引用调用节点(严格类型的VI引用)的动态调用和通用(我这么称呼的)动态调用。通过引用调用VI不仅指向被调用的VI,还指向被调用VI的连线板,这样我们就可以向被调用VI传递参数,并获得被调用VI的输出参数。 在实际应用中,对于需要向其传递参数、进行复杂数据处理、且不需要显示界面的子VI调用,我一般采用通过引用节点的动态调用;如果只是动态调用子VI,显示其界面进行相关操作,我通常采用通用动态调用。下面我们通过示例说明两种动态调用方法。 1. 通过引用调用节点的动态调用 先创建一个子VI,文件名为add.vi,其作用是两个浮点数相加,设置连线板,输入端分别指向两个加数,输出端指向两个加数的和,其前面板和程序框图如下图所示。 设计一个调用VI,文件名为CallVIByRef.vi,实现通过引用节点动态调用add.vi(调用时add.vi不显示前面板),其前面板和程序框图如下图所示。 2. 通用动态调用 除了通过引用动态调用VI外,还有一种动态调用VI,我叫它通用动态调用VI,以下是其程序框图。 上图中,“运行VI”调用节点的“Wait Until Done”属性设置为False,表示被调用VI被执行、显示界面后,调用VI还可以继续去干别的事情,这相当于显示调用了一个无模态对话框。如将“Wait Until Done”属性设置为True,则表示执行模态对话框调用,即被调用VI关闭后,调用VI才能继续干别的事情程序框图如下图所示。 3. 被调用VI的路径问题 在动态调用VI时,经常发生在开发环境下能正常调用VI,一旦打包成执行文件后,调用就出现了异常,原因是打包后LabVIEW会把exe文件看作是一层目录,这样按以前相对路径关系就找不到被调用VI了,所以出现了异常。 读者可以参考网上的解决办法,笔者也提出一种解决办法:先看下面的项目。 以上示例vi(LabVIEW 2012下设计)放在百度网盘上,有兴趣的读者可以下载使用 。 vi下载地址:DynamicCall.rar |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |